package com.wuxiaolong;

import com.wuxiaolong.framework.MyApplicationContext;
import com.wuxiaolong.service.OrderService;
import com.wuxiaolong.service.UserService;

/**
 * Description:
 * Bean和对象的区别：
 *      Bean一定是一个对象，但是一个对象不一定是一个Bean
 * 单例Bean和原型Bean: @Scope
 *      单例Bean: 整改spring容器中只有一个全局唯一的bean
 *      原型Bean: 每次getBean时都会新生成一个
 * 懒加载：
 *      启动时不实例化，getBean时才实例化。容器启动时只会实例化非懒加载的单例bean
 *
 * @author 诸葛小猿
 * @date 2020-11-19
 */
public class TestApplication {

    public static void main(String[] args) {
        // xml方式
        // ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("spring.xml");

        // 注解方式 启动spring
        // 启动时主要完成两步：1.扫码 2.创建bean(非懒加载的单例bean)
        MyApplicationContext ac = new MyApplicationContext(AppConfig.class);

        UserService userService = (UserService) ac.getBean("userService");
        userService.test();
        // userService.test();
    }
}
